from flask import jsonify
from app.api.v1 import bp
from app.models.sea_temperature import SeaTemperature
from app.models.marine_area import MarineArea
from sqlalchemy import func
from datetime import datetime, timedelta

@bp.route('/temperature/heatmap/<int:area_id>', methods=['GET'])
def get_temperature_heatmap(area_id):
    """
    获取指定海域的温度分布热力图数据
    参数: area_id - 海域ID
    返回: 该海域最近24小时的温度分布数据，包括:
        - area_name: 海域名称
        - center: 海域中心点坐标
        - heatmap_data: 温度数据点列表，每个点包含:
            - lat: 纬度
            - lng: 经度
            - value: 温度值
    """
    area = MarineArea.query.get_or_404(area_id)
    
    # 获取最新的温度数据
    temperatures = SeaTemperature.query.filter_by(
        marine_area_id=area_id
    ).order_by(SeaTemperature.measurement_date.desc()).limit(10).all()
    
    heatmap_data = [{
        'lat': float(temp.latitude),
        'lng': float(temp.longitude),
        'value': float(temp.temperature)
    } for temp in temperatures]
    
    response_data = {
        'area_name': area.area_name,
        'center': {
            'lat': float(area.location_lat),
            'lng': float(area.location_lng)
        },
        'heatmap_data': heatmap_data
    }
    
    print("Heatmap data:", heatmap_data)
    print("Response data:", response_data)
    return jsonify(response_data) 